package com.cyp.blogsystem.service;

import com.cyp.blogsystem.model.query.ArticleQuery;
import com.cyp.blogsystem.model.request.CreateArticleRequest;
import com.cyp.blogsystem.model.request.UpdateArticleRequest;
import com.cyp.blogsystem.model.vo.ArticleDetailVO;
import com.cyp.blogsystem.model.vo.ArticleVO;
import com.cyp.blogsystem.pojo.PageResult;

public interface ArticleService {
    /**
     * 创建文章
     */
    Long createArticle(Long userId, CreateArticleRequest request);

    /**
     * 获取文章列表
     */
    PageResult<ArticleVO> getArticleList(ArticleQuery query);

    /**
     * 获取文章详情
     */
    ArticleDetailVO getArticleDetail(Long id);

    /**
     * 更新文章
     */
    void updateArticle(Long id, UpdateArticleRequest request);

    /**
     * 删除文章
     */
    void deleteArticle(Long id);

    /**
     * 点赞/取消点赞
     */
    void likeArticle(Long userId, Long articleId);
}